/**
 * 任务相关 API 接口
 * 包含任务查询、自定义任务创建等功能
 */

import request from '@/utils/request'

/**
 * 获取任务列表
 * 支持按领域、难度、年龄筛选
 * @param {Object} params - 查询参数
 * @param {string} [params.domain] - 任务领域 'social' | 'self_care' | 'cognitive'
 * @param {number} [params.difficulty] - 难度等级 1-5
 * @param {number} [params.age] - 适用年龄
 * @returns {Promise<Array>} 任务列表
 */
export function getTaskList(params) {
  return request({
    url: '/task/list',
    method: 'get',
    params
  })
}

/**
 * 分页获取任务列表
 * 支持按领域、难度、年龄筛选，带分页功能
 * @param {Object} params - 查询参数
 * @param {string} [params.domain] - 任务领域
 * @param {number} [params.difficulty] - 难度等级 1-5
 * @param {number} [params.age] - 适用年龄
 * @param {number} [params.pageNum] - 页码（从1开始）
 * @param {number} [params.pageSize] - 每页大小
 * @returns {Promise<Object>} 分页结果 { records, total, pages, current, size }
 */
export function getTaskListPage(params) {
  return request({
    url: '/task/page',
    method: 'get',
    params
  })
}

/**
 * 添加自定义任务
 * 家长可以根据孩子的特点创建个性化训练任务
 * @param {Object} data - 任务数据
 * @param {string} data.title - 任务标题
 * @param {string} data.description - 任务描述
 * @param {string} data.domain - 任务领域
 * @param {number} data.difficulty - 难度等级
 * @param {number} data.targetAge - 目标年龄
 * @param {number} data.duration - 建议时长（分钟）
 * @returns {Promise} 创建的任务对象
 */
export function addCustomTask(data) {
  return request({
    url: '/task/addCustom',
    method: 'post',
    data
  })
}
//这一整函数都是用来传递data这个信息给后端的
export function modifyCustomTask(data) {
    return request({
        url: '/task/modifyCustom',//接口地址
        method: 'post',//请求方式
        data// 要发送给后端的数据（即修改后的任务信息）
    })
}

/**
 * 删除自定义任务
 * @param {number} taskId - 任务ID
 * @returns {Promise} 删除结果
 */
export function deleteCustomTask(taskId) {
    return request({
        url: `/task/deleteCustom/${taskId}`,
        method: 'delete'
    })
}

/**
 * 标记任务为已掌握
 * 将任务收入成长盒，记录孩子的成长印记
 * @param {Object} params - 请求参数
 * @param {number} params.userId - 用户ID
 * @param {number} params.taskId - 任务ID
 * @returns {Promise} 操作结果 { success, msg }
 */
export function markTaskMastered(params) {
  return request({
    url: '/task/markMastered',
    method: 'post',
    params
  })
}
